package com.task.core.service;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.List;

import com.task.core.domain.SysFileInfo;
import com.task.core.domain.info.DataImportProgress;
import com.task.core.dto.request.DataFileUploadRequestDTO;
import com.task.core.dto.request.SysFileRequestDTO;

/**
 * @author 迪迦.
 * @date 2024/11/13 13:57
 */
public interface DataFileOperationService {

  /**
   * 数据文件上传文件.
   * @param request 请求参数
   * @return  文件上传信息
   */
  SysFileInfo dataFileUpload(DataFileUploadRequestDTO request)
      throws IOException, URISyntaxException;

  /**
   * 通过文件code获取数据导入进度
   * @return
   */
  DataImportProgress getDataImportProgress();

  void stopImport(String fileCode);

  //void copyTaskData(String tableName);

  /**
   * 清除成功的记录缓存
   * @param fileCodes 上传文件时返回的fileCode
   */
  void clearSuccessRecord(List<String> fileCodes);

  /**
   * 获取数据导入进度.
   * @return  进度数据
   */
  DataImportProgress getDataExportProgress();
}
